The present invention relates generally to the field of software application installation tools, and more particularly to a method of and system for testing the compatibility of an external application program interface (API) upgrade with an existing user application program during installation of the external API upgrade.
In today""s software systems, one application may rely one or more separate applications for various services. An application interfaces with the other application or applications through application program interfaces (APIs). Such application integration allows an application to provide services without having to include the programming and data necessary to provide the services itself.
For example, a retail application may rely on a separate postal ZIP code database application for address and ZIP code verification. The database vendor provides APIs to access the database information, and these APIs are built in their own dynamic link library (DLL). The retail application is written to load that DLL and use those APIs.
Software is typically upgraded periodically to include new or improved features. In the ZIP code database application example, the database and APIs may be updated monthly. The updated ZIP code database application may be sent directly to literally thousands of users of the retail application. One problem that can result is that the updated APIs may not be compatible with the retail application. Such incompatibility may cause the retail application to function incorrectly or not to function at all. Currently, during the upgrade process, the users must either install the upgrade and hope that all of the APIs are compatible, or wait until the upgrade has been fully tested for compatibility in a lab. Installing the upgrade blindly without testing is risky, particularly when thousands of users are involved. Lab testing of each upgrade is vulnerable to human error and can be impractical when the upgrades are performed frequently and there are many user to notify of the upgrade test results.
The present invention provides a method of and system for testing the compatibility of an external API upgrade with an existing user application during the installation of the API upgrade on an individual computer system. The system of the present invention installs the API upgrade in a temporary address space. Then, the system launches a test process for each API of the API upgrade that is used by the existing user application. If the result received from each of the APIs matches the result expected from the API, the system completes installation of the external API in permanent address space. If any test process terminates unexpectedly, or any result fails to match an expected result, the system notifies the user of a problem and terminates installation of the external API upgrade.